{"cells":[{"source":"<a href=\"https://www.kaggle.com/code/peremartramanonellas/use-a-vectorial-db-to-optimize-prompts-for-llms?scriptVersionId=139453844\" target=\"_blank\"><img align=\"left\" alt=\"Kaggle\" title=\"Open in Kaggle\" src=\"https://kaggle.com/static/images/open-in-kaggle.svg\"></a>","metadata":{},"cell_type":"markdown"},{"cell_type":"code","execution_count":1,"id":"b2fcbc7c","metadata":{"_kg_hide-input":true,"execution":{"iopub.execute_input":"2023-08-09T21:34:46.808265Z","iopub.status.busy":"2023-08-09T21:34:46.807001Z","iopub.status.idle":"2023-08-09T21:34:46.826855Z","shell.execute_reply":"2023-08-09T21:34:46.825579Z"},"papermill":{"duration":0.036658,"end_time":"2023-08-09T21:34:46.829555","exception":false,"start_time":"2023-08-09T21:34:46.792897","status":"completed"},"tags":[]},"outputs":[{"data":{"text/html":["\n","<style>\n",".output_png {\n","    display: table-cell;\n","    text-align: center;\n","    vertical-align: middle;\n","    horizontal-align: middle;\n","}\n","h1 {\n","    text-align: center;\n","    background-color: #6bacf5;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","    style=\"font-family:verdana;\"\n","}\n","\n","h2 {\n","    text-align: center;\n","    background-color: #83c2ff;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","h3 {\n","    text-align: center;\n","    background-color: pink;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","h4 {\n","    text-align: center;\n","    background-color: pink;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","body, p {\n","    font-family: monospace;\n","    font-size: 18px;\n","    color: charcoal;\n","}\n","div {\n","    font-size: 14px;\n","    margin: 0;\n","\n","}\n","\n","\n","</style>\n"],"text/plain":["<IPython.core.display.HTML object>"]},"execution_count":1,"metadata":{},"output_type":"execute_result"}],"source":["from IPython.core.display import HTML\n","HTML(\"\"\"\n","<style>\n",".output_png {\n","    display: table-cell;\n","    text-align: center;\n","    vertical-align: middle;\n","    horizontal-align: middle;\n","}\n","h1 {\n","    text-align: center;\n","    background-color: #6bacf5;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","    style=\"font-family:verdana;\"\n","}\n","\n","h2 {\n","    text-align: center;\n","    background-color: #83c2ff;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","h3 {\n","    text-align: center;\n","    background-color: pink;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","h4 {\n","    text-align: center;\n","    background-color: pink;\n","    padding: 10px;\n","    margin: 0;\n","    font-family: monospace;\n","    color:DimGray;\n","    border-radius: 2px\n","}\n","\n","body, p {\n","    font-family: monospace;\n","    font-size: 18px;\n","    color: charcoal;\n","}\n","div {\n","    font-size: 14px;\n","    margin: 0;\n","\n","}\n","\n","\n","</style>\n","\"\"\")"]},{"attachments":{"a73106c8-f286-41fc-b9d7-66638412114c.png":{"image/png":"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KqqBPGnglFNOsU9ueuwpplnJn0r5NTCwRzubSSHodO2an03TvXax5T2+ZWsz8OaxoRQw/fGHTL8rO9u0V/Ydas46/2K73+HM48078+ea3ffcx0yc+nLKvIb372UenjDWbLDBBmbe4m/MhhtuaFofe7BZvnSxOazZUWbEuMkp7y/Ui9I/zjrrLMNfIcv//d//mT59+tgqXHXVVaZ+/fqFXB0tu2pANVAGDfznP/8xw4cPt3f++9//NnvuuWcZcll3y7hx48yTTz5pD7p3727+9a9/lTkvvVE1oBpQDagGVAOqgeQaUDs+uW7CXjnttNPMrFmzvOSvv/66qVevnndc3h3soquvvtr89ddfpcqKMrz88stms802W+++adOmmQsvvNCe33777c3kyZPNMcccY/7888/10vJt99prr3nnKUevXr3Mfffd551LtXPuueeaXXbZxQwZMsQm23XXXc1bb72V9Bb6ZKdOnQy2ZRjZcsstzaBBgwzPUSmbBjJpx5etBJm9awMF2DOrUM2tdBpQgL10+gqTWgDUOAPstw3taybeNdKq47Z7HjGNmx9t93t2aWtmPDfNVN15FzNt1nsp1XVN9/bm+elTzNbbVDCvvLPSpr2w9bHmvQVvmD33OcDc99gLKe8v1IvSPxRgL9QW1HKrBlQDrgYyZZjPmTPHDBs2zGZ99NFHm65du7qP0f2YaoCPaRXVgGqgODRQngnY4tBQbmupAHv59Z1NgP3FF180bdq0SShk8+bNTcuWLc3OO+9stt12W/P555+blStXmoceesh8+OGHCWlvvPFGc/755yec48AF2MmjRo0a5r33/vlu33jjjc1///tfe1/fvn3NJZdc4uVx7bXXmrFjEx3yTjzxRNOkSRPTsGFDs2zZMvPmm29a0P7333+3922++ebm119/tfupAPaFCxca7D+5jxtq165tHdL22GMPw2TAu+++a/N/4oknEiYdAPA7dOhgn6H/SqeBTNnxpXtq9lIrwJ493WrOaTTgvlTbdultatRtkOYOvZxOAyuXLjITRg+1yQpBp2XxYP/mqy9NqyP3N2vXrjE77FTJAumbbrpudnzkDf3N+DG3mg032sjM+fALs9FGGydVWbvTjjb/9858s2vNOmbKS/NtOrzi8Y7fqXIV88zriUaCm9HC9982P37/ndl515r2fvdalPfd/lFeT88o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ujy1WMCu9d12223t3XffNYX0Wif1gn/sscdMA48qgM9tBOy5In7f530qev+m/TwcrcJUBNIl4Nv5MfEB+7hx40wn54YhjdY8piW2R2MlAbs25sSjD7JpTz7ituuvj79oG2y4cZdtfO/dd+yKS1rt2WlP2Buvvbr8g+lS23Szz9kWn9/aRp1wsm25zYguzwlP0PJvuvZK+8fjD9ncjz9y9d432mRT23vkgXbMiT+2ddZdPzx7om5PnthqnTM6XM8RDb5JQwABfwT4YO7PvmRLEKhUwLcP5pU68LzyBNL+/hHHgF17MLdUzIknnmjnnntu5M595plnTD3GVYZFbYcddjD1ZC+lHOTUqVPt1FNPtTlz5rjnNjQ02IMPPmh9+/Z198P/FAvYNe/PfvYz+/3vf++epkFeNXCqgvef/vSndtppp4UX524TsHch8XoC71PRuzft5+FoFaYikC4B386PiQ/Ym5qa3BG4x8gm23P5Ja6t0oD9tltusLPGjnabNfGaW+xLu2f/VLL9xsk24b9/ZgsWzM9sun5WqV7var169bZjf/AT+96PTne3MzMtv/HZ8g+k/9P6C7v+j5Myk8PP1cS11l7HrrzpTtt8aDJrGwcDnGoAI11oCCDgjwAfzP3Zl2wJApUK+PbBvFIHnleeQNrfP+IasM9bPh7VbrvtZm+99Zbbob169bI77rjDRoyI7ix0wQUX2IUXXpjZ+erBft5559lRRx2VNahoMMP8+fNdGH799dcHk5b//6iXq+H+hS98ITMtfKOUgF297/fbbz/3tH79+tncuXPdbfWqHzJkSHhx7jYBexcSryfwPhW9e9N+Ho5WYSoC6RLw7fxIwF6n47fSgP2VjhfsqP13d2t56vjz7ahjTsyscccL/7RRh3x1ec+NJbZe/w3stOWP7/DF3Wz1NdawF/75lAvPX37xeTf/Saefubw3+48zz9WNa373P/bbC85201SC5pSf/9L1dn/v3bftzql/tuv+cKl9smCBbTKowW786+NuuVkLSMAdAvYE7CRWEYEKBfhgXiEcT0PAIwHfPph7tGtivSlpf/+Ia8Cug+auu+6y73znO5njZ6uttrJ7773XevfunZkWvqFe62eddVamJ7seW2uttWybbbZxpVtUPuall16y559/3l5++WVbvHhx5unrrbee6/Wer9a7ZiwlYFfHJn0JMHPm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"}},"cell_type":"markdown","id":"388e2016","metadata":{"papermill":{"duration":0.011699,"end_time":"2023-08-09T21:34:46.853746","exception":false,"start_time":"2023-08-09T21:34:46.842047","status":"completed"},"tags":[]},"source":["# TUTORIAL HOW TO USE A VECTOR / EMBEDDING DATABASE TO PROVIDE CONTEXT TO A LARGE LANGUAGE MODEL\n","\n","### This notebook is part of a comprehensive course on Large Language Models available on GitHub: https://github.com/peremartra/Large-Language-Model-Notebooks-Course. If you want to stay informed about new lessons or updates, simply follow or star the repository.\n","\n","In this notebook we will see how to use an embedding database to store the information that we want to pass to a large language model so that it takes it into account in its responses.\n","\n","The information could be our own documents, or whatever was contained in a business knowledge database.\n","\n","I have prepared the notebook so that it can work with three different Kaggle datasets, so that it is easy to carry out different tests with different Datasets.\n","\n","![VectorDatabase.png](attachment:a73106c8-f286-41fc-b9d7-66638412114c.png)\n","### Feel Free to fork or edit the noteboook for you own convenience. Please consider ***UPVOTING IT***. It helps others to discover the notebook, and it encourages me to continue publishing."]},{"cell_type":"markdown","id":"fd8900c0","metadata":{"papermill":{"duration":0.011578,"end_time":"2023-08-09T21:34:46.877351","exception":false,"start_time":"2023-08-09T21:34:46.865773","status":"completed"},"tags":[]},"source":["# Import and load the libraries. \n","To start we need to install the necesary Python packages. \n","* **[sentence transformers](http:/www.sbert.net/)**. This library is necessary to transform the sentences into fixed-length vectors, also know as embeddings. \n","* **[xformers](https://github.com/facebookresearch/xformers)**. it's a package that provides libraries an utilities to facilitate the work with transformers models. We need to install in order to avoid an error when we work with the model and embeddings.  \n","* **[chromadb](https://www.trychroma.com/)**. This is our vector Database. ChromaDB is easy to use and open source, maybe the most used Vector Database used to store embeddings. "]},{"cell_type":"code","execution_count":2,"id":"6e2455ed","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:34:46.902882Z","iopub.status.busy":"2023-08-09T21:34:46.902488Z","iopub.status.idle":"2023-08-09T21:39:27.08395Z","shell.execute_reply":"2023-08-09T21:39:27.081966Z"},"papermill":{"duration":280.198049,"end_time":"2023-08-09T21:39:27.087378","exception":false,"start_time":"2023-08-09T21:34:46.889329","status":"completed"},"scrolled":true,"tags":[]},"outputs":[{"name":"stdout","output_type":"stream","text":["Collecting sentence-transformers\r\n","  Downloading sentence-transformers-2.2.2.tar.gz (85 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.0/86.0 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \bdone\r\n","\u001b[?25hRequirement already satisfied: transformers<5.0.0,>=4.6.0 in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (4.30.2)\r\n","Requirement already satisfied: tqdm in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (4.65.0)\r\n","Requirement already satisfied: torch>=1.6.0 in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (2.0.0+cpu)\r\n","Requirement already satisfied: torchvision in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (0.15.1+cpu)\r\n","Requirement already satisfied: numpy in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (1.23.5)\r\n","Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (1.2.2)\r\n","Requirement already satisfied: scipy in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (1.11.1)\r\n","Requirement already satisfied: nltk in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (3.2.4)\r\n","Requirement already satisfied: sentencepiece in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (0.1.99)\r\n","Requirement already satisfied: huggingface-hub>=0.4.0 in /opt/conda/lib/python3.10/site-packages (from sentence-transformers) (0.16.4)\r\n","Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (3.12.2)\r\n","Requirement already satisfied: fsspec in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (2023.6.0)\r\n","Requirement already satisfied: requests in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (2.31.0)\r\n","Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (6.0)\r\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (4.6.3)\r\n","Requirement already satisfied: packaging>=20.9 in /opt/conda/lib/python3.10/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (21.3)\r\n","Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0->sentence-transformers) (1.12)\r\n","Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0->sentence-transformers) (3.1)\r\n","Requirement already satisfied: jinja2 in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0->sentence-transformers) (3.1.2)\r\n","Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.10/site-packages (from transformers<5.0.0,>=4.6.0->sentence-transformers) (2023.6.3)\r\n","Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /opt/conda/lib/python3.10/site-packages (from transformers<5.0.0,>=4.6.0->sentence-transformers) (0.13.3)\r\n","Requirement already satisfied: safetensors>=0.3.1 in /opt/conda/lib/python3.10/site-packages (from transformers<5.0.0,>=4.6.0->sentence-transformers) (0.3.1)\r\n","Requirement already satisfied: six in /opt/conda/lib/python3.10/site-packages (from nltk->sentence-transformers) (1.16.0)\r\n","Requirement already satisfied: joblib>=1.1.1 in /opt/conda/lib/python3.10/site-packages (from scikit-learn->sentence-transformers) (1.2.0)\r\n","Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.10/site-packages (from scikit-learn->sentence-transformers) (3.1.0)\r\n","Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/conda/lib/python3.10/site-packages (from torchvision->sentence-transformers) (9.5.0)\r\n","Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.10/site-packages (from packaging>=20.9->huggingface-hub>=0.4.0->sentence-transformers) (3.0.9)\r\n","Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2->torch>=1.6.0->sentence-transformers) (2.1.3)\r\n","Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (3.1.0)\r\n","Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (3.4)\r\n","Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (1.26.15)\r\n","Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (2023.5.7)\r\n","Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.10/site-packages (from sympy->torch>=1.6.0->sentence-transformers) (1.3.0)\r\n","Building wheels for collected packages: sentence-transformers\r\n","  Building wheel for sentence-transformers (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n","\u001b[?25h  Created wheel for sentence-transformers: filename=sentence_transformers-2.2.2-py3-none-any.whl size=125938 sha256=0186bf17a319c47879f47e7d572ce8fcbd0cc2b3aff82cf0cc60ce7224d9db1c\r\n","  Stored in directory: /root/.cache/pip/wheels/62/f2/10/1e606fd5f02395388f74e7462910fe851042f97238cbbd902f\r\n","Successfully built sentence-transformers\r\n","Installing collected packages: sentence-transformers\r\n","Successfully installed sentence-transformers-2.2.2\r\n","Collecting xformers\r\n","  Downloading xformers-0.0.20-cp310-cp310-manylinux2014_x86_64.whl (109.1 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m109.1/109.1 MB\u001b[0m \u001b[31m9.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: numpy in /opt/conda/lib/python3.10/site-packages (from xformers) (1.23.5)\r\n","Collecting pyre-extensions==0.0.29 (from xformers)\r\n","  Downloading pyre_extensions-0.0.29-py3-none-any.whl (12 kB)\r\n","Collecting torch==2.0.1 (from xformers)\r\n","  Downloading torch-2.0.1-cp310-cp310-manylinux1_x86_64.whl (619.9 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m619.9/619.9 MB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: typing-inspect in /opt/conda/lib/python3.10/site-packages (from pyre-extensions==0.0.29->xformers) (0.9.0)\r\n","Requirement already satisfied: typing-extensions in /opt/conda/lib/python3.10/site-packages (from pyre-extensions==0.0.29->xformers) (4.6.3)\r\n","Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from torch==2.0.1->xformers) (3.12.2)\r\n","Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from torch==2.0.1->xformers) (1.12)\r\n","Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from torch==2.0.1->xformers) (3.1)\r\n","Requirement already satisfied: jinja2 in /opt/conda/lib/python3.10/site-packages (from torch==2.0.1->xformers) (3.1.2)\r\n","Collecting nvidia-cuda-nvrtc-cu11==11.7.99 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.0/21.0 MB\u001b[0m \u001b[31m48.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cuda-runtime-cu11==11.7.99 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m849.3/849.3 kB\u001b[0m \u001b[31m41.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cuda-cupti-cu11==11.7.101 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.8/11.8 MB\u001b[0m \u001b[31m69.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cudnn-cu11==8.5.0.96 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m557.1/557.1 MB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cublas-cu11==11.10.3.66 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m317.1/317.1 MB\u001b[0m \u001b[31m1.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cufft-cu11==10.9.0.58 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux1_x86_64.whl (168.4 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m168.4/168.4 MB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-curand-cu11==10.2.10.91 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.6/54.6 MB\u001b[0m \u001b[31m20.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cusolver-cu11==11.4.0.1 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m102.6/102.6 MB\u001b[0m \u001b[31m10.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-cusparse-cu11==11.7.4.91 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m173.2/173.2 MB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-nccl-cu11==2.14.3 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m177.1/177.1 MB\u001b[0m \u001b[31m5.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting nvidia-nvtx-cu11==11.7.91 (from torch==2.0.1->xformers)\r\n","  Downloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.6/98.6 kB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting triton==2.0.0 (from torch==2.0.1->xformers)\r\n","  Downloading triton-2.0.0-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (63.3 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m63.3/63.3 MB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: setuptools in /opt/conda/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0.1->xformers) (59.8.0)\r\n","Requirement already satisfied: wheel in /opt/conda/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0.1->xformers) (0.40.0)\r\n","Collecting cmake (from triton==2.0.0->torch==2.0.1->xformers)\r\n","  Downloading cmake-3.27.1-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (26.0 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m26.0/26.0 MB\u001b[0m \u001b[31m5.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting lit (from triton==2.0.0->torch==2.0.1->xformers)\r\n","  Downloading lit-16.0.6.tar.gz (153 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m153.7/153.7 kB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25h  Installing build dependencies ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n","\u001b[?25h  Getting requirements to build wheel ... \u001b[?25l-\b \bdone\r\n","\u001b[?25h  Installing backend dependencies ... \u001b[?25l-\b \b\\\b \bdone\r\n","\u001b[?25h  Preparing metadata (pyproject.toml) ... \u001b[?25l-\b \bdone\r\n","\u001b[?25hRequirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2->torch==2.0.1->xformers) (2.1.3)\r\n","Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.10/site-packages (from sympy->torch==2.0.1->xformers) (1.3.0)\r\n","Requirement already satisfied: mypy-extensions>=0.3.0 in /opt/conda/lib/python3.10/site-packages (from typing-inspect->pyre-extensions==0.0.29->xformers) (1.0.0)\r\n","Building wheels for collected packages: lit\r\n","  Building wheel for lit (pyproject.toml) ... \u001b[?25l-\b \b\\\b \bdone\r\n","\u001b[?25h  Created wheel for lit: filename=lit-16.0.6-py3-none-any.whl size=93583 sha256=41666911fea9a8e46118dd96da9d4b35975fd2c9bd4993e59b8426ba936e0c85\r\n","  Stored in directory: /root/.cache/pip/wheels/14/f9/07/bb2308587bc2f57158f905a2325f6a89a2befa7437b2d7e137\r\n","Successfully built lit\r\n","Installing collected packages: lit, cmake, nvidia-nvtx-cu11, nvidia-nccl-cu11, nvidia-cusparse-cu11, nvidia-curand-cu11, nvidia-cufft-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-nvrtc-cu11, nvidia-cuda-cupti-cu11, nvidia-cublas-cu11, pyre-extensions, nvidia-cusolver-cu11, nvidia-cudnn-cu11, triton, torch, xformers\r\n","  Attempting uninstall: torch\r\n","    Found existing installation: torch 2.0.0+cpu\r\n","    Uninstalling torch-2.0.0+cpu:\r\n","      Successfully uninstalled torch-2.0.0+cpu\r\n","\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n","torchaudio 2.0.1+cpu requires torch==2.0.0, but you have torch 2.0.1 which is incompatible.\r\n","torchdata 0.6.0 requires torch==2.0.0, but you have torch 2.0.1 which is incompatible.\r\n","torchtext 0.15.1+cpu requires torch==2.0.0, but you have torch 2.0.1 which is incompatible.\r\n","torchvision 0.15.1+cpu requires torch==2.0.0, but you have torch 2.0.1 which is incompatible.\u001b[0m\u001b[31m\r\n","\u001b[0mSuccessfully installed cmake-3.27.1 lit-16.0.6 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 pyre-extensions-0.0.29 torch-2.0.1 triton-2.0.0 xformers-0.0.20\r\n","Collecting chromadb\r\n","  Downloading chromadb-0.4.5-py3-none-any.whl (402 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m402.8/402.8 kB\u001b[0m \u001b[31m7.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: requests>=2.28 in /opt/conda/lib/python3.10/site-packages (from chromadb) (2.31.0)\r\n","Requirement already satisfied: pydantic<2.0,>=1.9 in /opt/conda/lib/python3.10/site-packages (from chromadb) (1.10.9)\r\n","Collecting chroma-hnswlib==0.7.2 (from chromadb)\r\n","  Downloading chroma-hnswlib-0.7.2.tar.gz (31 kB)\r\n","  Installing build dependencies ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \bdone\r\n","\u001b[?25h  Getting requirements to build wheel ... \u001b[?25l-\b \bdone\r\n","\u001b[?25h  Preparing metadata (pyproject.toml) ... \u001b[?25l-\b \bdone\r\n","\u001b[?25hRequirement already satisfied: fastapi<0.100.0,>=0.95.2 in /opt/conda/lib/python3.10/site-packages (from chromadb) (0.98.0)\r\n","Requirement already satisfied: uvicorn[standard]>=0.18.3 in /opt/conda/lib/python3.10/site-packages (from chromadb) (0.22.0)\r\n","Requirement already satisfied: numpy>=1.21.6 in /opt/conda/lib/python3.10/site-packages (from chromadb) (1.23.5)\r\n","Collecting posthog>=2.4.0 (from chromadb)\r\n","  Downloading posthog-3.0.1-py2.py3-none-any.whl (37 kB)\r\n","Requirement already satisfied: typing-extensions>=4.5.0 in /opt/conda/lib/python3.10/site-packages (from chromadb) (4.6.3)\r\n","Collecting pulsar-client>=3.1.0 (from chromadb)\r\n","  Downloading pulsar_client-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.3/5.3 MB\u001b[0m \u001b[31m53.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hCollecting onnxruntime>=1.14.1 (from chromadb)\r\n","  Downloading onnxruntime-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.9/5.9 MB\u001b[0m \u001b[31m68.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: tokenizers>=0.13.2 in /opt/conda/lib/python3.10/site-packages (from chromadb) (0.13.3)\r\n","Collecting pypika>=0.48.9 (from chromadb)\r\n","  Downloading PyPika-0.48.9.tar.gz (67 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.3/67.3 kB\u001b[0m \u001b[31m4.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25h  Installing build dependencies ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n","\u001b[?25h  Getting requirements to build wheel ... \u001b[?25l-\b \bdone\r\n","\u001b[?25h  Preparing metadata (pyproject.toml) ... \u001b[?25l-\b \bdone\r\n","\u001b[?25hRequirement already satisfied: tqdm>=4.65.0 in /opt/conda/lib/python3.10/site-packages (from chromadb) (4.65.0)\r\n","Collecting overrides>=7.3.1 (from chromadb)\r\n","  Downloading overrides-7.4.0-py3-none-any.whl (17 kB)\r\n","Requirement already satisfied: importlib-resources in /opt/conda/lib/python3.10/site-packages (from chromadb) (5.12.0)\r\n","Requirement already satisfied: starlette<0.28.0,>=0.27.0 in /opt/conda/lib/python3.10/site-packages (from fastapi<0.100.0,>=0.95.2->chromadb) (0.27.0)\r\n","Collecting coloredlogs (from onnxruntime>=1.14.1->chromadb)\r\n","  Downloading coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: flatbuffers in /opt/conda/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb) (23.5.26)\r\n","Requirement already satisfied: packaging in /opt/conda/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb) (21.3)\r\n","Requirement already satisfied: protobuf in /opt/conda/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb) (3.20.3)\r\n","Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb) (1.12)\r\n","Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb) (1.16.0)\r\n","Collecting monotonic>=1.5 (from posthog>=2.4.0->chromadb)\r\n","  Downloading monotonic-1.6-py2.py3-none-any.whl (8.2 kB)\r\n","Requirement already satisfied: backoff>=1.10.0 in /opt/conda/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb) (2.2.1)\r\n","Requirement already satisfied: python-dateutil>2.1 in /opt/conda/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb) (2.8.2)\r\n","Requirement already satisfied: certifi in /opt/conda/lib/python3.10/site-packages (from pulsar-client>=3.1.0->chromadb) (2023.5.7)\r\n","Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests>=2.28->chromadb) (3.1.0)\r\n","Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests>=2.28->chromadb) (3.4)\r\n","Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests>=2.28->chromadb) (1.26.15)\r\n","Requirement already satisfied: click>=7.0 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (8.1.3)\r\n","Requirement already satisfied: h11>=0.8 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.14.0)\r\n","Requirement already satisfied: httptools>=0.5.0 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.6.0)\r\n","Requirement already satisfied: python-dotenv>=0.13 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (1.0.0)\r\n","Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (6.0)\r\n","Requirement already satisfied: uvloop!=0.15.0,!=0.15.1,>=0.14.0 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.17.0)\r\n","Requirement already satisfied: watchfiles>=0.13 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.19.0)\r\n","Requirement already satisfied: websockets>=10.4 in /opt/conda/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb) (11.0.3)\r\n","Requirement already satisfied: anyio<5,>=3.4.0 in /opt/conda/lib/python3.10/site-packages (from starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (3.7.0)\r\n","Collecting humanfriendly>=9.1 (from coloredlogs->onnxruntime>=1.14.1->chromadb)\r\n","  Downloading humanfriendly-10.0-py2.py3-none-any.whl (86 kB)\r\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n","\u001b[?25hRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.10/site-packages (from packaging->onnxruntime>=1.14.1->chromadb) (3.0.9)\r\n","Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.10/site-packages (from sympy->onnxruntime>=1.14.1->chromadb) (1.3.0)\r\n","Requirement already satisfied: sniffio>=1.1 in /opt/conda/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (1.3.0)\r\n","Requirement already satisfied: exceptiongroup in /opt/conda/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (1.1.1)\r\n","Building wheels for collected packages: chroma-hnswlib, pypika\r\n","  Building wheel for chroma-hnswlib (pyproject.toml) ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \bdone\r\n","\u001b[?25h  Created wheel for chroma-hnswlib: filename=chroma_hnswlib-0.7.2-cp310-cp310-linux_x86_64.whl size=194635 sha256=f4273e6bfd64a3210d3c22986699598a49c4cffb6a3096dab8aa26ed8a132962\r\n","  Stored in directory: /root/.cache/pip/wheels/11/2b/0d/ee457f6782f75315bb5828d5c2dc5639d471afbd44a830b9dc\r\n","  Building wheel for pypika (pyproject.toml) ... \u001b[?25l-\b \bdone\r\n","\u001b[?25h  Created wheel for pypika: filename=PyPika-0.48.9-py2.py3-none-any.whl size=53723 sha256=6943073166726b924e35cc96b58c653c851bb83ec5cefe9128b10718556928b3\r\n","  Stored in directory: /root/.cache/pip/wheels/e1/26/51/d0bffb3d2fd82256676d7ad3003faea3bd6dddc9577af665f4\r\n","Successfully built chroma-hnswlib pypika\r\n","Installing collected packages: pypika, monotonic, pulsar-client, overrides, humanfriendly, chroma-hnswlib, posthog, coloredlogs, onnxruntime, chromadb\r\n","  Attempting uninstall: overrides\r\n","    Found existing installation: overrides 6.5.0\r\n","    Uninstalling overrides-6.5.0:\r\n","      Successfully uninstalled overrides-6.5.0\r\n","\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n","google-cloud-pubsublite 1.8.2 requires overrides<7.0.0,>=6.0.1, but you have overrides 7.4.0 which is incompatible.\r\n","jupyterlab-lsp 4.2.0 requires jupyter-lsp>=2.0.0, but you have jupyter-lsp 1.5.1 which is incompatible.\u001b[0m\u001b[31m\r\n","\u001b[0mSuccessfully installed chroma-hnswlib-0.7.2 chromadb-0.4.5 coloredlogs-15.0.1 humanfriendly-10.0 monotonic-1.6 onnxruntime-1.15.1 overrides-7.3.1 posthog-3.0.1 pulsar-client-3.2.0 pypika-0.48.9\r\n"]}],"source":["!pip install sentence-transformers\n","!pip install xformers\n","!pip install chromadb"]},{"cell_type":"markdown","id":"53167810","metadata":{"papermill":{"duration":0.109692,"end_time":"2023-08-09T21:39:27.30772","exception":false,"start_time":"2023-08-09T21:39:27.198028","status":"completed"},"tags":[]},"source":["I'm sure that you know the next two packages: Numpy and Pandas, maybe the most used python libraries.\n","\n","Numpy is a powerful library for numerical computing. \n","\n","Pandas is a library for data manipulation"]},{"cell_type":"code","execution_count":3,"id":"a43c00d7","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:27.528669Z","iopub.status.busy":"2023-08-09T21:39:27.528186Z","iopub.status.idle":"2023-08-09T21:39:27.534528Z","shell.execute_reply":"2023-08-09T21:39:27.533444Z"},"papermill":{"duration":0.119466,"end_time":"2023-08-09T21:39:27.53679","exception":false,"start_time":"2023-08-09T21:39:27.417324","status":"completed"},"tags":[]},"outputs":[],"source":["import numpy as np \n","import pandas as pd"]},{"cell_type":"markdown","id":"ad0b444b","metadata":{"papermill":{"duration":0.108355,"end_time":"2023-08-09T21:39:27.756162","exception":false,"start_time":"2023-08-09T21:39:27.647807","status":"completed"},"tags":[]},"source":["# Load the Dataset\n","As you can see the notebook is ready to work with three different Datasets. Just uncomment the lines of the Dataset you want to use. \n","\n","I selected Datasets with News. Two of them have just a brief decription of the new, but the other contains the full text. \n","\n","As we are working in a free and limited space, and we can use just 30 gb of memory I limited the number of news to use with the variable MAX_NEWS. \n","\n","The name of the field containing the text of the new is stored in the variable *DOCUMENT* and the metadata in *TOPIC*"]},{"cell_type":"code","execution_count":4,"id":"8295283f","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:27.976383Z","iopub.status.busy":"2023-08-09T21:39:27.975953Z","iopub.status.idle":"2023-08-09T21:39:28.969871Z","shell.execute_reply":"2023-08-09T21:39:28.968606Z"},"papermill":{"duration":1.108124,"end_time":"2023-08-09T21:39:28.972925","exception":false,"start_time":"2023-08-09T21:39:27.864801","status":"completed"},"tags":[]},"outputs":[],"source":["news = pd.read_csv('/kaggle/input/topic-labeled-news-dataset/labelled_newscatcher_dataset.csv', sep=';')\n","MAX_NEWS = 1000\n","DOCUMENT=\"title\"\n","TOPIC=\"topic\"\n","\n","#news = pd.read_csv('/kaggle/input/bbc-news/bbc_news.csv')\n","#MAX_NEWS = 1000\n","#DOCUMENT=\"description\"\n","#TOPIC=\"title\"\n","\n","#news = pd.read_csv('/kaggle/input/mit-ai-news-published-till-2023/articles.csv')\n","#MAX_NEWS = 100\n","#DOCUMENT=\"Article Body\"\n","#TOPIC=\"Article Header\"\n"]},{"cell_type":"markdown","id":"73a9675f","metadata":{"papermill":{"duration":0.109282,"end_time":"2023-08-09T21:39:29.190672","exception":false,"start_time":"2023-08-09T21:39:29.08139","status":"completed"},"tags":[]},"source":["ChromaDB requires that the data has a unique identifier. We can make it with this statement, which will create a new column called **Id**.\n"]},{"cell_type":"code","execution_count":5,"id":"a0366502","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:29.412447Z","iopub.status.busy":"2023-08-09T21:39:29.412019Z","iopub.status.idle":"2023-08-09T21:39:29.438535Z","shell.execute_reply":"2023-08-09T21:39:29.437519Z"},"papermill":{"duration":0.140821,"end_time":"2023-08-09T21:39:29.441676","exception":false,"start_time":"2023-08-09T21:39:29.300855","status":"completed"},"tags":[]},"outputs":[{"data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>topic</th>\n","      <th>link</th>\n","      <th>domain</th>\n","      <th>published_date</th>\n","      <th>title</th>\n","      <th>lang</th>\n","      <th>id</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>SCIENCE</td>\n","      <td>https://www.eurekalert.org/pub_releases/2020-0...</td>\n","      <td>eurekalert.org</td>\n","      <td>2020-08-06 13:59:45</td>\n","      <td>A closer look at water-splitting's solar fuel ...</td>\n","      <td>en</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>SCIENCE</td>\n","      <td>https://www.pulse.ng/news/world/an-irresistibl...</td>\n","      <td>pulse.ng</td>\n","      <td>2020-08-12 15:14:19</td>\n","      <td>An irresistible scent makes locusts swarm, stu...</td>\n","      <td>en</td>\n","      <td>1</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>SCIENCE</td>\n","      <td>https://www.express.co.uk/news/science/1322607...</td>\n","      <td>express.co.uk</td>\n","      <td>2020-08-13 21:01:00</td>\n","      <td>Artificial intelligence warning: AI will know ...</td>\n","      <td>en</td>\n","      <td>2</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>SCIENCE</td>\n","      <td>https://www.ndtv.com/world-news/glaciers-could...</td>\n","      <td>ndtv.com</td>\n","      <td>2020-08-03 22:18:26</td>\n","      <td>Glaciers Could Have Sculpted Mars Valleys: Study</td>\n","      <td>en</td>\n","      <td>3</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>SCIENCE</td>\n","      <td>https://www.thesun.ie/tech/5742187/perseid-met...</td>\n","      <td>thesun.ie</td>\n","      <td>2020-08-12 19:54:36</td>\n","      <td>Perseid meteor shower 2020: What time and how ...</td>\n","      <td>en</td>\n","      <td>4</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["     topic                                               link          domain  \\\n","0  SCIENCE  https://www.eurekalert.org/pub_releases/2020-0...  eurekalert.org   \n","1  SCIENCE  https://www.pulse.ng/news/world/an-irresistibl...        pulse.ng   \n","2  SCIENCE  https://www.express.co.uk/news/science/1322607...   express.co.uk   \n","3  SCIENCE  https://www.ndtv.com/world-news/glaciers-could...        ndtv.com   \n","4  SCIENCE  https://www.thesun.ie/tech/5742187/perseid-met...       thesun.ie   \n","\n","        published_date                                              title  \\\n","0  2020-08-06 13:59:45  A closer look at water-splitting's solar fuel ...   \n","1  2020-08-12 15:14:19  An irresistible scent makes locusts swarm, stu...   \n","2  2020-08-13 21:01:00  Artificial intelligence warning: AI will know ...   \n","3  2020-08-03 22:18:26   Glaciers Could Have Sculpted Mars Valleys: Study   \n","4  2020-08-12 19:54:36  Perseid meteor shower 2020: What time and how ...   \n","\n","  lang  id  \n","0   en   0  \n","1   en   1  \n","2   en   2  \n","3   en   3  \n","4   en   4  "]},"execution_count":5,"metadata":{},"output_type":"execute_result"}],"source":["news[\"id\"] = news.index\n","news.head()"]},{"cell_type":"code","execution_count":6,"id":"9b1a0456","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:29.664996Z","iopub.status.busy":"2023-08-09T21:39:29.664321Z","iopub.status.idle":"2023-08-09T21:39:29.671322Z","shell.execute_reply":"2023-08-09T21:39:29.670161Z"},"papermill":{"duration":0.122484,"end_time":"2023-08-09T21:39:29.673915","exception":false,"start_time":"2023-08-09T21:39:29.551431","status":"completed"},"tags":[]},"outputs":[],"source":["#Because it is just a course we select a small portion of News.\n","subset_news = news.head(MAX_NEWS)"]},{"cell_type":"markdown","id":"c6b06e1c","metadata":{"papermill":{"duration":0.113072,"end_time":"2023-08-09T21:39:29.897236","exception":false,"start_time":"2023-08-09T21:39:29.784164","status":"completed"},"tags":[]},"source":["# Import and configure the Vector Database\n","I'm going to use ChromaDB, the most popular OpenSource embedding Database. \n","\n","First we need to import ChromaDB, and after that import the **Settings** class from **chromadb.config** module. This class allows us to change the setting for the ChromaDB system, and customize its behavior. "]},{"cell_type":"code","execution_count":7,"id":"e8b25ac5","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:30.11809Z","iopub.status.busy":"2023-08-09T21:39:30.11754Z","iopub.status.idle":"2023-08-09T21:39:30.460165Z","shell.execute_reply":"2023-08-09T21:39:30.458786Z"},"papermill":{"duration":0.457172,"end_time":"2023-08-09T21:39:30.46331","exception":false,"start_time":"2023-08-09T21:39:30.006138","status":"completed"},"tags":[]},"outputs":[],"source":["import chromadb\n","from chromadb.config import Settings"]},{"cell_type":"markdown","id":"be869640","metadata":{"papermill":{"duration":0.109878,"end_time":"2023-08-09T21:39:30.6816","exception":false,"start_time":"2023-08-09T21:39:30.571722","status":"completed"},"tags":[]},"source":["Now we need to create the seetings object calling the **Settings** function imported previously. We store the object in the variable **settings_chroma**.\n","\n","Is necessary to inform two parameters \n","* chroma_db_impl. Here we specify the database implementation and the format how store the data. I choose ***duckdb***, because his high-performace. It operate primarly in memory. And is fully compatible with SQL. The store format ***parquet*** is good for tabular data. With good compression rates and performance. \n","\n","* persist_directory: It just contains the directory where the data will be stored. Is possible work without a directory and the data will be stored in memory without persistece, but Kaggle dosn't support that. "]},{"cell_type":"code","execution_count":8,"id":"f0826939","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:30.912258Z","iopub.status.busy":"2023-08-09T21:39:30.910851Z","iopub.status.idle":"2023-08-09T21:39:31.390556Z","shell.execute_reply":"2023-08-09T21:39:31.389373Z"},"papermill":{"duration":0.602508,"end_time":"2023-08-09T21:39:31.393375","exception":false,"start_time":"2023-08-09T21:39:30.790867","status":"completed"},"tags":[]},"outputs":[],"source":["#OLD VERSION\n","#settings_chroma = Settings(chroma_db_impl=\"duckdb+parquet\", \n","#                          persist_directory='./input')\n","#chroma_client = chromadb.Client(settings_chroma)\n","\n","#NEW VERSION => 0.40\n","chroma_client = chromadb.PersistentClient(path=\"/path/to/persist/directory\")"]},{"cell_type":"markdown","id":"e913a40f","metadata":{"papermill":{"duration":0.108478,"end_time":"2023-08-09T21:39:31.611028","exception":false,"start_time":"2023-08-09T21:39:31.50255","status":"completed"},"tags":[]},"source":["# Filling and Querying the ChromaDB Database\n","The Data in ChromaDB is stored in collections. If the collection exist we need to delete it. \n","\n","In the next lines, we are creating the collection by calling the ***create_collection*** function in the ***chroma_client*** created above."]},{"cell_type":"code","execution_count":9,"id":"e2a4389a","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:31.84779Z","iopub.status.busy":"2023-08-09T21:39:31.846454Z","iopub.status.idle":"2023-08-09T21:39:31.922801Z","shell.execute_reply":"2023-08-09T21:39:31.921601Z"},"papermill":{"duration":0.204638,"end_time":"2023-08-09T21:39:31.925766","exception":false,"start_time":"2023-08-09T21:39:31.721128","status":"completed"},"tags":[]},"outputs":[],"source":["collection_name = \"news_collection\"\n","if len(chroma_client.list_collections()) > 0 and collection_name in [chroma_client.list_collections()[0].name]:\n","        chroma_client.delete_collection(name=collection_name)\n","\n","collection = chroma_client.create_collection(name=collection_name)\n","    "]},{"cell_type":"markdown","id":"075b5b77","metadata":{"papermill":{"duration":0.121639,"end_time":"2023-08-09T21:39:32.171752","exception":false,"start_time":"2023-08-09T21:39:32.050113","status":"completed"},"tags":[]},"source":["It's time to add the data to the collection. Using the function ***add*** we need to inform, at least ***documents***, ***metadatas*** and ***ids***. \n","* In the **document** we store the big text, it's a different column in each Dataset. \n","* In **metadatas**, we can informa a list of topics. \n","* In **id** we need to inform an unique identificator for each row. It MUST be unique! I'm creating the ID using the range of MAX_NEWS. \n"]},{"cell_type":"code","execution_count":10,"id":"3ebfe819","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:39:32.403061Z","iopub.status.busy":"2023-08-09T21:39:32.402386Z","iopub.status.idle":"2023-08-09T21:41:15.412561Z","shell.execute_reply":"2023-08-09T21:41:15.410825Z"},"papermill":{"duration":103.125,"end_time":"2023-08-09T21:41:15.41615","exception":false,"start_time":"2023-08-09T21:39:32.29115","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["/root/.cache/chroma/onnx_models/all-MiniLM-L6-v2/onnx.tar.gz: 100%|██████████| 79.3M/79.3M [00:08<00:00, 9.82MiB/s]\n"]}],"source":["\n","collection.add(\n","    documents=subset_news[DOCUMENT].tolist(),\n","    metadatas=[{TOPIC: topic} for topic in subset_news[TOPIC].tolist()],\n","    ids=[f\"id{x}\" for x in range(MAX_NEWS)],\n",")"]},{"cell_type":"code","execution_count":11,"id":"a82d0c2d","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:41:15.671976Z","iopub.status.busy":"2023-08-09T21:41:15.671541Z","iopub.status.idle":"2023-08-09T21:41:15.747946Z","shell.execute_reply":"2023-08-09T21:41:15.746741Z"},"papermill":{"duration":0.207055,"end_time":"2023-08-09T21:41:15.750684","exception":false,"start_time":"2023-08-09T21:41:15.543629","status":"completed"},"tags":[]},"outputs":[{"name":"stdout","output_type":"stream","text":["{'ids': [['id173', 'id829', 'id117', 'id535', 'id141', 'id218', 'id390', 'id273', 'id56', 'id900']], 'distances': [[0.8593593835830688, 1.02944016456604, 1.0793330669403076, 1.093000888824463, 1.1329681873321533, 1.2130440473556519, 1.2143317461013794, 1.216413974761963, 1.2220635414123535, 1.2754170894622803]], 'metadatas': [[{'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}, {'topic': 'TECHNOLOGY'}]], 'embeddings': None, 'documents': [['The Legendary Toshiba is Officially Done With Making Laptops', '3 gaming laptop deals you can’t afford to miss today', 'Lenovo and HP control half of the global laptop market', 'Asus ROG Zephyrus G14 gaming laptop announced in India', 'Acer Swift 3 featuring a 10th-generation Intel Ice Lake CPU, 2K screen, and more launched in India for INR 64999 (US$865)', \"Apple's Next MacBook Could Be the Cheapest in Company's History\", \"Features of Huawei's Desktop Computer Revealed\", 'Redmi to launch its first gaming laptop on August 14: Here are all the details', 'Toshiba shuts the lid on laptops after 35 years', 'This is the cheapest Windows PC by a mile and it even has a spare SSD slot']]}\n"]}],"source":["results = collection.query(query_texts=[\"laptop\"], n_results=10 )\n","\n","print(results)"]},{"cell_type":"markdown","id":"482bc555","metadata":{"papermill":{"duration":0.114409,"end_time":"2023-08-09T21:41:15.988355","exception":false,"start_time":"2023-08-09T21:41:15.873946","status":"completed"},"tags":[]},"source":["## Vector MAP"]},{"cell_type":"code","execution_count":12,"id":"d9ca66cd","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:41:16.221151Z","iopub.status.busy":"2023-08-09T21:41:16.220683Z","iopub.status.idle":"2023-08-09T21:41:17.671871Z","shell.execute_reply":"2023-08-09T21:41:17.670557Z"},"papermill":{"duration":1.572812,"end_time":"2023-08-09T21:41:17.675304","exception":false,"start_time":"2023-08-09T21:41:16.102492","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n","  warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n"]}],"source":["import matplotlib.pyplot as plt\n","from sklearn.decomposition import PCA"]},{"cell_type":"code","execution_count":13,"id":"d7853f20","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:41:17.915461Z","iopub.status.busy":"2023-08-09T21:41:17.914585Z","iopub.status.idle":"2023-08-09T21:41:17.922508Z","shell.execute_reply":"2023-08-09T21:41:17.921312Z"},"papermill":{"duration":0.133011,"end_time":"2023-08-09T21:41:17.925223","exception":false,"start_time":"2023-08-09T21:41:17.792212","status":"completed"},"tags":[]},"outputs":[],"source":["\n","getado = collection.get(ids=\"id141\", \n","                       include=[\"documents\", \"embeddings\"])\n"]},{"cell_type":"code","execution_count":14,"id":"d659f5f1","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:41:18.157835Z","iopub.status.busy":"2023-08-09T21:41:18.157328Z","iopub.status.idle":"2023-08-09T21:41:18.172102Z","shell.execute_reply":"2023-08-09T21:41:18.170791Z"},"papermill":{"duration":0.135356,"end_time":"2023-08-09T21:41:18.174504","exception":false,"start_time":"2023-08-09T21:41:18.039148","status":"completed"},"scrolled":true,"tags":[]},"outputs":[{"data":{"text/plain":["[[-0.0808560848236084,\n","  -0.049963705241680145,\n","  -0.023777484893798828,\n","  -0.011053602211177349,\n","  0.02665771171450615,\n","  -0.04479333013296127,\n","  -0.02889663353562355,\n","  0.026656104251742363,\n","  0.0014397227205336094,\n","  -0.016407841816544533,\n","  0.0653492733836174,\n","  -0.06901992857456207,\n","  -0.05748078227043152,\n","  0.010111615061759949,\n","  0.05043035000562668,\n","  -0.002057764446362853,\n","  0.07256408035755157,\n","  -0.12437368929386139,\n","  0.010659442283213139,\n","  -0.10942046344280243,\n","  -0.01143240462988615,\n","  -0.010376011952757835,\n","  -0.020610831677913666,\n","  -0.024394094944000244,\n","  0.07828476279973984,\n","  0.005820558872073889,\n","  0.023317726328969002,\n","  -0.08243829756975174,\n","  -0.02726505883038044,\n","  0.0046674772165715694,\n","  0.004340188577771187,\n","  0.03252805024385452,\n","  -0.026030974462628365,\n","  0.07963905483484268,\n","  0.042182061821222305,\n","  -0.12119994312524796,\n","  0.04907083883881569,\n","  -0.07625846564769745,\n","  0.04331624507904053,\n","  -0.08360457420349121,\n","  -0.07140401750802994,\n","  -0.018792513757944107,\n","  0.036049388349056244,\n","  0.042845625430345535,\n","  0.025760438293218613,\n","  0.03972514718770981,\n","  -0.007091294974088669,\n","  0.035189948976039886,\n","  0.027369096875190735,\n","  0.009289839304983616,\n","  -0.03916166350245476,\n","  -0.037401288747787476,\n","  -0.03369569778442383,\n","  -0.06543102860450745,\n","  0.01919756457209587,\n","  -0.009083813056349754,\n","  0.022507958114147186,\n","  -0.04346753656864166,\n","  0.03663364797830582,\n","  0.09003791213035583,\n","  0.037535011768341064,\n","  -0.04698672145605087,\n","  -0.021450482308864594,\n","  0.049021799117326736,\n","  0.0008767120307311416,\n","  -0.0491013377904892,\n","  0.019651763141155243,\n","  -0.11427141726016998,\n","  -0.0041212718933820724,\n","  -0.059363994747400284,\n","  0.08288168162107468,\n","  -0.015205126255750656,\n","  0.05800360441207886,\n","  -0.009099257178604603,\n","  -0.06618720293045044,\n","  -0.04995487257838249,\n","  0.051422737538814545,\n","  -0.030697545036673546,\n","  -0.00599612295627594,\n","  -0.017441147938370705,\n","  -0.0067165326327085495,\n","  -0.026863766834139824,\n","  0.009797872975468636,\n","  0.012698033824563026,\n","  -0.017240023240447044,\n","  -0.040722113102674484,\n","  0.02619202248752117,\n","  -0.036331336945295334,\n","  -0.005993332713842392,\n","  -0.03835161030292511,\n","  -0.0025671017356216908,\n","  0.017816301435232162,\n","  0.015638208016753197,\n","  -0.002425231970846653,\n","  -0.04693610966205597,\n","  0.014938564039766788,\n","  0.057856056839227676,\n","  -0.04266524314880371,\n","  -0.051958806812763214,\n","  0.07029527425765991,\n","  0.0174096692353487,\n","  0.01044029463082552,\n","  0.06522297114133835,\n","  -0.0005443890695460141,\n","  -0.0072739566676318645,\n","  -0.01764906942844391,\n","  -0.01343501266092062,\n","  0.04487789049744606,\n","  -0.04048682376742363,\n","  0.05065847188234329,\n","  -0.006964817643165588,\n","  -0.039026305079460144,\n","  -0.06116586551070213,\n","  0.009619001299142838,\n","  -0.01937313936650753,\n","  -0.07259991019964218,\n","  -0.05417889729142189,\n","  -0.012206215411424637,\n","  0.14574117958545685,\n","  0.07729611545801163,\n","  -0.03489774465560913,\n","  0.02000734768807888,\n","  -0.00971849262714386,\n","  -0.0023303572088479996,\n","  -0.08877687901258469,\n","  0.007430689875036478,\n","  -0.022453872486948967,\n","  2.939167320216669e-33,\n","  -0.03226035088300705,\n","  0.02646695077419281,\n","  -0.06441568583250046,\n","  -0.10495101660490036,\n","  0.007915517315268517,\n","  -0.056241028010845184,\n","  0.0600648857653141,\n","  0.020356711000204086,\n","  0.008408062160015106,\n","  0.00394280394539237,\n","  -0.07579407840967178,\n","  -0.059283699840307236,\n","  -0.07090269774198532,\n","  0.047602903097867966,\n","  0.12866826355457306,\n","  -0.09145348519086838,\n","  -0.06453359127044678,\n","  -0.022725841030478477,\n","  -0.007938683032989502,\n","  0.08817118406295776,\n","  0.030397845432162285,\n","  -0.08102215081453323,\n","  -0.004711293615400791,\n","  0.008305762894451618,\n","  -0.008205698803067207,\n","  0.044841013848781586,\n","  0.003640854964032769,\n","  -0.015380569733679295,\n","  0.06941366195678711,\n","  0.026241688057780266,\n","  0.042122967541217804,\n","  -0.022600207477808,\n","  -0.004685663152486086,\n","  -0.08609002083539963,\n","  -0.0017022470710799098,\n","  -0.036475248634815216,\n","  0.03104810230433941,\n","  -0.07396797835826874,\n","  0.0006451740628108382,\n","  0.057689860463142395,\n","  -0.03433110564947128,\n","  0.10101553797721863,\n","  -0.07978133112192154,\n","  -0.01770963706076145,\n","  0.03582654148340225,\n","  0.07763752341270447,\n","  0.007194378413259983,\n","  0.05085881054401398,\n","  0.03166932985186577,\n","  -0.050254058092832565,\n","  -0.1192030981183052,\n","  -0.002129735192283988,\n","  -0.0107394028455019,\n","  -0.048253513872623444,\n","  0.05193442106246948,\n","  -0.0033458012621849775,\n","  0.045708633959293365,\n","  -0.0063198041170835495,\n","  0.13073934614658356,\n","  0.05694258213043213,\n","  -0.1031755656003952,\n","  -0.021950311958789825,\n","  -0.05125086382031441,\n","  -0.006670759059488773,\n","  -0.04244102165102959,\n","  0.07283089309930801,\n","  0.08295755833387375,\n","  -0.01451050490140915,\n","  -0.050436634570360184,\n","  -0.0063996752724051476,\n","  -0.05111794173717499,\n","  -0.06090034544467926,\n","  0.12017730623483658,\n","  -0.007007972337305546,\n","  -0.018361017107963562,\n","  0.05737388879060745,\n","  -0.06952648609876633,\n","  -0.0329073891043663,\n","  -0.046019524335861206,\n","  -0.04026426374912262,\n","  -0.03974202275276184,\n","  0.04068472236394882,\n","  0.06414211541414261,\n","  0.08900655806064606,\n","  -0.00060390739236027,\n","  0.06864351779222488,\n","  -0.04542217403650284,\n","  -0.012834936380386353,\n","  0.014704265631735325,\n","  0.08229125291109085,\n","  -0.011864698491990566,\n","  -0.007569513283669949,\n","  0.029478946700692177,\n","  -0.017556926235556602,\n","  0.03026776760816574,\n","  -3.4444798318695305e-33,\n","  0.013093586079776287,\n","  -0.05642778053879738,\n","  -0.05393407866358757,\n","  0.02010548673570156,\n","  0.002186316065490246,\n","  0.021474365144968033,\n","  -0.01675189472734928,\n","  0.11519582569599152,\n","  0.009137553162872791,\n","  0.002790238708257675,\n","  -0.028134936466813087,\n","  0.08885099738836288,\n","  0.07289770990610123,\n","  0.02972547896206379,\n","  0.03313830494880676,\n","  -0.03830660134553909,\n","  -0.015428598038852215,\n","  -0.025887154042720795,\n","  0.02991276979446411,\n","  0.021465003490447998,\n","  0.055984679609537125,\n","  0.02411733567714691,\n","  0.013602275401353836,\n","  0.001853855443187058,\n","  0.046712420880794525,\n","  0.019653165712952614,\n","  -0.0611024871468544,\n","  0.006502089090645313,\n","  0.0441303625702858,\n","  -0.030408691614866257,\n","  0.003392198821529746,\n","  -0.07827484607696533,\n","  0.08200996369123459,\n","  0.021945785731077194,\n","  -0.04214276745915413,\n","  -0.011046931147575378,\n","  0.11221751570701599,\n","  -0.03547649085521698,\n","  -0.02034923806786537,\n","  0.05863974243402481,\n","  0.061948224902153015,\n","  0.004163042642176151,\n","  0.025604233145713806,\n","  0.07054829597473145,\n","  0.026611244305968285,\n","  0.03901861235499382,\n","  -0.0028351128567010164,\n","  -0.013862921856343746,\n","  -0.03907373547554016,\n","  -0.10136910527944565,\n","  0.015273002907633781,\n","  -0.0636049285531044,\n","  0.009429153054952621,\n","  -0.03778139874339104,\n","  -0.07231791317462921,\n","  -0.05598380044102669,\n","  0.0146296676248312,\n","  0.006302482448518276,\n","  0.036601871252059937,\n","  -0.07091113924980164,\n","  0.03455745428800583,\n","  0.021303288638591766,\n","  0.018934456631541252,\n","  0.01931314915418625,\n","  0.007075129076838493,\n","  0.018622223287820816,\n","  0.05089221149682999,\n","  0.03337225690484047,\n","  -0.008652801625430584,\n","  -0.023814190179109573,\n","  -0.05765106528997421,\n","  -0.10482978075742722,\n","  0.013372018001973629,\n","  -0.01933068409562111,\n","  -0.016363972797989845,\n","  0.04313588887453079,\n","  -0.019315389916300774,\n","  0.042876679450273514,\n","  0.07228625565767288,\n","  -0.004229306243360043,\n","  0.025138597935438156,\n","  0.07576548308134079,\n","  0.033386338502168655,\n","  0.022974086925387383,\n","  0.07685324549674988,\n","  -0.05225932598114014,\n","  0.043289393186569214,\n","  -0.012385099194943905,\n","  -0.036590274423360825,\n","  -0.012774484232068062,\n","  -0.046136267483234406,\n","  0.051983099430799484,\n","  -0.06112852692604065,\n","  -0.0003355621884111315,\n","  -0.006177410017699003,\n","  -2.835624535180159e-08,\n","  0.06613793969154358,\n","  0.011798004619777203,\n","  0.037113726139068604,\n","  0.04696718230843544,\n","  0.043035347014665604,\n","  -0.09251100569963455,\n","  0.046135202050209045,\n","  0.08055239915847778,\n","  0.10685128718614578,\n","  -0.007414942141622305,\n","  -0.0413203239440918,\n","  -0.08303714543581009,\n","  -0.018203390762209892,\n","  0.013738766312599182,\n","  0.043958164751529694,\n","  0.037307366728782654,\n","  0.03315778449177742,\n","  0.0881715714931488,\n","  0.0019880577456206083,\n","  -0.07271483540534973,\n","  0.0230609979480505,\n","  0.04958247020840645,\n","  0.09864996373653412,\n","  -0.09664388746023178,\n","  -0.0389941930770874,\n","  0.040474724024534225,\n","  -0.053038567304611206,\n","  0.030482791364192963,\n","  0.06002917140722275,\n","  0.01091479416936636,\n","  -0.10208377242088318,\n","  0.03962486982345581,\n","  0.03992467746138573,\n","  -0.08412328362464905,\n","  0.09101279079914093,\n","  -0.06123001500964165,\n","  -0.03717247396707535,\n","  -0.019029760733246803,\n","  0.0963117778301239,\n","  -0.02458466775715351,\n","  -0.010751205496490002,\n","  0.0013019784819334745,\n","  -0.07538682967424393,\n","  -0.018940189853310585,\n","  0.054801248013973236,\n","  0.003068663412705064,\n","  -0.1022912859916687,\n","  -0.1027493104338646,\n","  0.0010229793842881918,\n","  0.03838779032230377,\n","  -0.03387368097901344,\n","  -0.006812311243265867,\n","  -0.028700852766633034,\n","  0.06181854382157326,\n","  0.012259316630661488,\n","  0.02560870721936226,\n","  -0.03962231054902077,\n","  -0.06302027404308319,\n","  -0.10198362916707993,\n","  0.09703315049409866,\n","  0.12165297567844391,\n","  -0.104803167283535,\n","  -0.04797930270433426,\n","  0.07281223684549332]]"]},"execution_count":14,"metadata":{},"output_type":"execute_result"}],"source":["word_vectors = getado[\"embeddings\"]\n","word_list = getado[\"documents\"]\n","word_vectors"]},{"cell_type":"markdown","id":"36d7fffb","metadata":{"papermill":{"duration":0.115947,"end_time":"2023-08-09T21:41:18.410305","exception":false,"start_time":"2023-08-09T21:41:18.294358","status":"completed"},"tags":[]},"source":["Once we have our information inside the Database we can query It, and ask for data that matches our needs. The search is done inside the content of the document, and it dosn't look for the exact word, or phrase. The results will be based on the similarity between the search terms and the content of documents. \n","\n","The metadata is not used in the search, but they can be utilized for filtering or refining the results after the initial search. \n"]},{"cell_type":"markdown","id":"01c1a56f","metadata":{"papermill":{"duration":0.114899,"end_time":"2023-08-09T21:41:18.641204","exception":false,"start_time":"2023-08-09T21:41:18.526305","status":"completed"},"tags":[]},"source":["# Loading the model and creating the prompt\n","TRANSFORMERS!!\n","Time to use the library **transformers**, the most famous library from [hugging face](https://huggingface.co/) for working with language models. \n","\n","We are importing: \n","* **Autotokenizer**: It is a utility class for tokenizing text inputs that are compatible with various pre-trained language models.\n","* **AutoModelForCasualLLM**: it provides an interface to pre-trained language models specifically designed for language generation tasks using causal language modeling (e.g., GPT models), or the model used in this notebook ***databricks/dolly-v2-3b***.\n","* **pipeline**: provides a simple interface for performing various natural language processing (NLP) tasks, such as text generation (our case) or text classification. \n","\n","The model selected is [dolly-v2-3b](https://huggingface.co/databricks/dolly-v2-3b), the smallest Dolly model. It have 3billion paramaters, more than enough for our sample, and works much better than GPT2. \n","\n","Please, feel free to test [different Models](https://huggingface.co/models?pipeline_tag=text-generation&sort=trending), you need to search for NLP models trained for text-generation. My recomendation is choose \"small\" models, or we will run out of memory in kaggle.  \n"]},{"cell_type":"code","execution_count":15,"id":"14e1456b","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:41:18.878267Z","iopub.status.busy":"2023-08-09T21:41:18.87675Z","iopub.status.idle":"2023-08-09T21:43:17.360493Z","shell.execute_reply":"2023-08-09T21:43:17.358794Z"},"papermill":{"duration":118.604999,"end_time":"2023-08-09T21:43:17.364247","exception":false,"start_time":"2023-08-09T21:41:18.759248","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:98: UserWarning: unable to load libtensorflow_io_plugins.so: unable to open file: libtensorflow_io_plugins.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so']\n","caused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io_plugins.so: undefined symbol: _ZN3tsl6StatusC1EN10tensorflow5error4CodeESt17basic_string_viewIcSt11char_traitsIcEENS_14SourceLocationE']\n","  warnings.warn(f\"unable to load libtensorflow_io_plugins.so: {e}\")\n","/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/__init__.py:104: UserWarning: file system plugins are not loaded: unable to open file: libtensorflow_io.so, from paths: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so']\n","caused by: ['/opt/conda/lib/python3.10/site-packages/tensorflow_io/python/ops/libtensorflow_io.so: undefined symbol: _ZTVN10tensorflow13GcsFileSystemE']\n","  warnings.warn(f\"file system plugins are not loaded: {e}\")\n"]},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"8c78dbb9177c4189898d5b5e9038bfa1","version_major":2,"version_minor":0},"text/plain":["Downloading (…)okenizer_config.json:   0%|          | 0.00/450 [00:00<?, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"02995ac75e3141878e930c3820e03fc7","version_major":2,"version_minor":0},"text/plain":["Downloading (…)/main/tokenizer.json:   0%|          | 0.00/2.11M [00:00<?, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"0689b959df09472ba149457a44d3702a","version_major":2,"version_minor":0},"text/plain":["Downloading (…)cial_tokens_map.json:   0%|          | 0.00/228 [00:00<?, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"e41c5b23a97144768f1668349ec938f0","version_major":2,"version_minor":0},"text/plain":["Downloading (…)lve/main/config.json:   0%|          | 0.00/819 [00:00<?, ?B/s]"]},"metadata":{},"output_type":"display_data"},{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"95034264d8d947f4a7454247f606ea7e","version_major":2,"version_minor":0},"text/plain":["Downloading pytorch_model.bin:   0%|          | 0.00/5.68G [00:00<?, ?B/s]"]},"metadata":{},"output_type":"display_data"}],"source":["from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline\n","\n","model_id = \"databricks/dolly-v2-3b\"\n","tokenizer = AutoTokenizer.from_pretrained(model_id)\n","lm_model = AutoModelForCausalLM.from_pretrained(model_id)\n","\n"]},{"cell_type":"markdown","id":"23cce99c","metadata":{"papermill":{"duration":0.119738,"end_time":"2023-08-09T21:43:17.605235","exception":false,"start_time":"2023-08-09T21:43:17.485497","status":"completed"},"tags":[]},"source":["The next step is to initialize the pipeline using the objects created above. \n","\n","The model's response is limited to 256 tokens, for this project I'm not interested in a longer response, but it can easily be extended to whatever length you want.\n","\n","Setting ***device_map*** to ***auto*** we are instructing the model to automaticaly select the most appropiate device: CPU or GPU for processing the text generation.  "]},{"cell_type":"code","execution_count":16,"id":"85212a0e","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:43:17.848412Z","iopub.status.busy":"2023-08-09T21:43:17.847981Z","iopub.status.idle":"2023-08-09T21:43:18.387722Z","shell.execute_reply":"2023-08-09T21:43:18.386453Z"},"papermill":{"duration":0.665475,"end_time":"2023-08-09T21:43:18.390754","exception":false,"start_time":"2023-08-09T21:43:17.725279","status":"completed"},"tags":[]},"outputs":[],"source":["pipe = pipeline(\n","    \"text-generation\",\n","    model=lm_model,\n","    tokenizer=tokenizer,\n","    max_new_tokens=256,\n","    device_map=\"auto\",\n",")"]},{"cell_type":"markdown","id":"821b1337","metadata":{"papermill":{"duration":0.119977,"end_time":"2023-08-09T21:43:18.628449","exception":false,"start_time":"2023-08-09T21:43:18.508472","status":"completed"},"tags":[]},"source":["## Creating the extended prompt\n","To create the prompt we use the result from query the Vector Database  and the sentence introduced by the user. \n","\n","The prompt have two parts, the **relevant context** that is the information recovered from the database and the **user's question**. \n","\n","We only need to join the two parts together to create the prompt that we are going to send to the model. \n","\n","You can limit the lenght of the context passed to the model, because we can get some Memory problems with one of the datasets that contains a realy large text in the document part. "]},{"cell_type":"code","execution_count":17,"id":"cb283e45","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:43:18.874807Z","iopub.status.busy":"2023-08-09T21:43:18.874132Z","iopub.status.idle":"2023-08-09T21:43:18.883603Z","shell.execute_reply":"2023-08-09T21:43:18.882352Z"},"papermill":{"duration":0.137789,"end_time":"2023-08-09T21:43:18.886677","exception":false,"start_time":"2023-08-09T21:43:18.748888","status":"completed"},"tags":[]},"outputs":[{"data":{"text/plain":["\"Relevant context: #The Legendary Toshiba is Officially Done With Making Laptops #3 gaming laptop deals you can’t afford to miss today #Lenovo and HP control half of the global laptop market #Asus ROG Zephyrus G14 gaming laptop announced in India #Acer Swift 3 featuring a 10th-generation Intel Ice Lake CPU, 2K screen, and more launched in India for INR 64999 (US$865) #Apple's Next MacBook Could Be the Cheapest in Company's History #Features of Huawei's Desktop Computer Revealed #Redmi to launch its first gaming laptop on August 14: Here are all the details #Toshiba shuts the lid on laptops after 35 years #This is the cheapest Windows PC by a mile and it even has a spare SSD slot\\n\\n The user's question: Can I buy a Toshiba laptop?\""]},"execution_count":17,"metadata":{},"output_type":"execute_result"}],"source":["question = \"Can I buy a Toshiba laptop?\"\n","context = \" \".join([f\"#{str(i)}\" for i in results[\"documents\"][0]])\n","#context = context[0:5120]\n","prompt_template = f\"Relevant context: {context}\\n\\n The user's question: {question}\"\n","prompt_template"]},{"cell_type":"markdown","id":"4b2bf346","metadata":{"papermill":{"duration":0.117944,"end_time":"2023-08-09T21:43:19.248442","exception":false,"start_time":"2023-08-09T21:43:19.130498","status":"completed"},"tags":[]},"source":["Now all that remains is to send the prompt to the model and wait for its response!\n"]},{"cell_type":"code","execution_count":18,"id":"77746348","metadata":{"execution":{"iopub.execute_input":"2023-08-09T21:43:19.484175Z","iopub.status.busy":"2023-08-09T21:43:19.483348Z","iopub.status.idle":"2023-08-09T21:43:39.407288Z","shell.execute_reply":"2023-08-09T21:43:39.405992Z"},"papermill":{"duration":20.043739,"end_time":"2023-08-09T21:43:39.409911","exception":false,"start_time":"2023-08-09T21:43:19.366172","status":"completed"},"tags":[]},"outputs":[{"name":"stderr","output_type":"stream","text":["Setting `pad_token_id` to `eos_token_id`:0 for open-end generation.\n"]},{"name":"stdout","output_type":"stream","text":["Relevant context: #The Legendary Toshiba is Officially Done With Making Laptops #3 gaming laptop deals you can’t afford to miss today #Lenovo and HP control half of the global laptop market #Asus ROG Zephyrus G14 gaming laptop announced in India #Acer Swift 3 featuring a 10th-generation Intel Ice Lake CPU, 2K screen, and more launched in India for INR 64999 (US$865) #Apple's Next MacBook Could Be the Cheapest in Company's History #Features of Huawei's Desktop Computer Revealed #Redmi to launch its first gaming laptop on August 14: Here are all the details #Toshiba shuts the lid on laptops after 35 years #This is the cheapest Windows PC by a mile and it even has a spare SSD slot\n","\n"," The user's question: Can I buy a Toshiba laptop?\n","The answer: No, Toshiba has decided to stop manufacturing laptops.\n","\n","\n"]}],"source":["lm_response = pipe(prompt_template)\n","print(lm_response[0][\"generated_text\"])"]},{"cell_type":"markdown","id":"b3c2f92e","metadata":{"execution":{"iopub.execute_input":"2023-07-12T22:01:56.993351Z","iopub.status.busy":"2023-07-12T22:01:56.992775Z","iopub.status.idle":"2023-07-12T22:01:57.001309Z","shell.execute_reply":"2023-07-12T22:01:56.999431Z","shell.execute_reply.started":"2023-07-12T22:01:56.993305Z"},"papermill":{"duration":0.115601,"end_time":"2023-08-09T21:43:39.642722","exception":false,"start_time":"2023-08-09T21:43:39.527121","status":"completed"},"tags":[]},"source":["# Conclusions, Fork and Improve\n","A very short notebook, but with a lot of content.\n","\n","We have used a vector database to store information. Then move on to retrieve it and use it to create an extended prompt that we've used to call one of the newer large language models available in Hugging Face.\n","\n","The model has returned a response to us taking into account the context that we have passed to it in the prompt.\n","\n","This way of working with language models is very powerful.\n","\n","We can make the model use our information without the need for Fine Tuning. This technique really has some very big advantages over fine tuning.\n","\n","Please don't stop here.\n","\n","* The notebook is prepared to use two more Datasets. Do tests with it.\n","\n","* Find another model on Hugging Face and compare it.\n","\n","* Modify the way to create the prompt.\n","\n","## Continue learning\n","This notebook is part of a [course on large language models](https://github.com/peremartra/Large-Language-Model-Notebooks-Course) I'm working on and it's available on [GitHub](https://github.com/peremartra/Large-Language-Model-Notebooks-Course). You can see the other lessons and if you like it, don't forget to subscribe to receive notifications of new lessons.\n","\n","Other notebooks in the Large Language Models series: \n","https://www.kaggle.com/code/peremartramanonellas/ask-your-documents-with-langchain-vectordb-hf"]},{"cell_type":"markdown","id":"79e58ed8","metadata":{"execution":{"iopub.execute_input":"2023-07-12T22:17:34.636604Z","iopub.status.busy":"2023-07-12T22:17:34.63605Z","iopub.status.idle":"2023-07-12T22:17:34.644497Z","shell.execute_reply":"2023-07-12T22:17:34.642819Z","shell.execute_reply.started":"2023-07-12T22:17:34.636566Z"},"papermill":{"duration":0.1162,"end_time":"2023-08-09T21:43:39.875381","exception":false,"start_time":"2023-08-09T21:43:39.759181","status":"completed"},"tags":[]},"source":["### If you liked the notebook Please consider ***UPVOTING IT***. It helps others to discover it, and encourages me to continue publishing."]},{"cell_type":"code","execution_count":null,"id":"3f68adac","metadata":{"papermill":{"duration":0.118506,"end_time":"2023-08-09T21:43:40.113367","exception":false,"start_time":"2023-08-09T21:43:39.994861","status":"completed"},"tags":[]},"outputs":[],"source":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"},"papermill":{"default_parameters":{},"duration":548.111945,"end_time":"2023-08-09T21:43:43.824058","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2023-08-09T21:34:35.712113","version":"2.4.0"},"widgets":{"application/vnd.jupyter.widget-state+json":{"state":{"02995ac75e3141878e930c3820e03fc7":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_e6ef6fbdb4374dceafaccece6b7b8ecb","IPY_MODEL_cfaf488eb5f94d8c993640f21fd72d83","IPY_MODEL_95f4afc28cc644cf9ae6fa07da117bd2"],"layout":"IPY_MODEL_8e2e7920879348a2905ac9eae757cab9"}},"03191c90a9ab4b6f8a47eda40c0db2e4":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_03378aafdda64f148a06371d3eb5b13d","max":450.0,"min":0.0,"orientation":"horizontal","style":"IPY_MODEL_0e7995432a66457ea9ba27c5d9c6b6c6","value":450.0}},"03378aafdda64f148a06371d3eb5b13d":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"03a71bb81a16444398246b20ea96cc93":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0689b959df09472ba149457a44d3702a":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_79dd882acf1b4d2f82c885f87dfc85c3","IPY_MODEL_6f47365e311845a88c55a7a7a566aa0f","IPY_MODEL_ff2953953c3647cf83fa1b2241e557f3"],"layout":"IPY_MODEL_5704560f19de42e898ebc19a5cd13ee1"}},"0e7995432a66457ea9ba27c5d9c6b6c6":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"0ede27dffea9472eaa20c23ad15b30b9":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1b89934ec4cb402f9c9ec46ec3481b39":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"212ab20586ec44ad9e08a6ef685c945a":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2f85833f870a459bab5549153939a508":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"33a6843833bd47f68587e83acd339e17":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9b84cb379cdf4d62be8e5316ca8f5220","placeholder":"​","style":"IPY_MODEL_e33b614dfb1843fdaac5f87a2eac87b2","value":" 819/819 [00:00&lt;00:00, 53.9kB/s]"}},"37d5ae1d43eb4cdd8b35a048251ea1ec":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3c3b0cb1286e44beba918d100b040741":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3dbd6ef7e4ac4070b210051a30047b04":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f3aae7580f8a4675be201baa9050f94e","placeholder":"​","style":"IPY_MODEL_1b89934ec4cb402f9c9ec46ec3481b39","value":"Downloading (…)okenizer_config.json: 100%"}},"41a125892a5941fbbb58528513fa22a1":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"489f5177c6dc4ed7a2c4fdb076c53100":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"53998aa78a17420489dad5ce91fa6d35":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5704560f19de42e898ebc19a5cd13ee1":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5a573ca5b6be46f7b33442ee64dd317a":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"679c3709035941b781f532aef7fb27ea":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_d73093e8301e48e7b71a9fe4779edd51","max":819.0,"min":0.0,"orientation":"horizontal","style":"IPY_MODEL_886e98a42b7348e1955878ec2ea863dd","value":819.0}},"6a97a246122b4606a7eb8e464df87797":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_7d39a0611cfd4e46aeaf918d05d64abe","max":5684548185.0,"min":0.0,"orientation":"horizontal","style":"IPY_MODEL_2f85833f870a459bab5549153939a508","value":5684548185.0}},"6ce65ef5c3e8473d8afd78ba29172f9e":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6f47365e311845a88c55a7a7a566aa0f":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_6ce65ef5c3e8473d8afd78ba29172f9e","max":228.0,"min":0.0,"orientation":"horizontal","style":"IPY_MODEL_d84e3ccc6c9f48b499e7022f60c532f3","value":228.0}},"79dd882acf1b4d2f82c885f87dfc85c3":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9e569ba5bc73481abfa2b2a3710db596","placeholder":"​","style":"IPY_MODEL_b3cb2671cbb14ddab3318d27d0803150","value":"Downloading (…)cial_tokens_map.json: 100%"}},"7d39a0611cfd4e46aeaf918d05d64abe":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"815edee207a4447e8df387e9608f3aea":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"847c52817ef849b0b72a9136dc653f8a":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_03a71bb81a16444398246b20ea96cc93","placeholder":"​","style":"IPY_MODEL_a4b0b744317b427b93101df0dca653e0","value":"Downloading (…)lve/main/config.json: 100%"}},"886e98a42b7348e1955878ec2ea863dd":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"8917abf6c0064ff2865457c718154f00":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8a74c3b646a3480ab947aa4ae317e61d":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8c78dbb9177c4189898d5b5e9038bfa1":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_3dbd6ef7e4ac4070b210051a30047b04","IPY_MODEL_03191c90a9ab4b6f8a47eda40c0db2e4","IPY_MODEL_9937f1e6c12948b3b2e2959528a2bc03"],"layout":"IPY_MODEL_d7bce7ee271f47ce9dc642416cad3623"}},"8e2e7920879348a2905ac9eae757cab9":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"94d7c0e25e2b4d8b9c189133db0093ee":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"95034264d8d947f4a7454247f606ea7e":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_98d9ce36a9c54571bbc17127bc33be25","IPY_MODEL_6a97a246122b4606a7eb8e464df87797","IPY_MODEL_9577fd6624634023964b1121b2f20383"],"layout":"IPY_MODEL_212ab20586ec44ad9e08a6ef685c945a"}},"9577fd6624634023964b1121b2f20383":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_94d7c0e25e2b4d8b9c189133db0093ee","placeholder":"​","style":"IPY_MODEL_e4c8148df11d411e9bfcf440aa63f24d","value":" 5.68G/5.68G [00:58&lt;00:00, 98.2MB/s]"}},"95f4afc28cc644cf9ae6fa07da117bd2":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_41a125892a5941fbbb58528513fa22a1","placeholder":"​","style":"IPY_MODEL_815edee207a4447e8df387e9608f3aea","value":" 2.11M/2.11M [00:00&lt;00:00, 2.48MB/s]"}},"98d9ce36a9c54571bbc17127bc33be25":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5a573ca5b6be46f7b33442ee64dd317a","placeholder":"​","style":"IPY_MODEL_37d5ae1d43eb4cdd8b35a048251ea1ec","value":"Downloading pytorch_model.bin: 100%"}},"9937f1e6c12948b3b2e2959528a2bc03":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c5bddf36bed94cf1b7423c762ec7c564","placeholder":"​","style":"IPY_MODEL_489f5177c6dc4ed7a2c4fdb076c53100","value":" 450/450 [00:00&lt;00:00, 20.3kB/s]"}},"9b84cb379cdf4d62be8e5316ca8f5220":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9e569ba5bc73481abfa2b2a3710db596":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a4b0b744317b427b93101df0dca653e0":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"b3cb2671cbb14ddab3318d27d0803150":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c5bddf36bed94cf1b7423c762ec7c564":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cfaf488eb5f94d8c993640f21fd72d83":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_8a74c3b646a3480ab947aa4ae317e61d","max":2114274.0,"min":0.0,"orientation":"horizontal","style":"IPY_MODEL_3c3b0cb1286e44beba918d100b040741","value":2114274.0}},"d02776a1c7c44df7a4a115fb60233b40":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d73093e8301e48e7b71a9fe4779edd51":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d7bce7ee271f47ce9dc642416cad3623":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d84e3ccc6c9f48b499e7022f60c532f3":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e33b614dfb1843fdaac5f87a2eac87b2":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e41c5b23a97144768f1668349ec938f0":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_847c52817ef849b0b72a9136dc653f8a","IPY_MODEL_679c3709035941b781f532aef7fb27ea","IPY_MODEL_33a6843833bd47f68587e83acd339e17"],"layout":"IPY_MODEL_53998aa78a17420489dad5ce91fa6d35"}},"e4c8148df11d411e9bfcf440aa63f24d":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e6ef6fbdb4374dceafaccece6b7b8ecb":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_8917abf6c0064ff2865457c718154f00","placeholder":"​","style":"IPY_MODEL_e9f83d9bcda54c628c02bf56168987f3","value":"Downloading (…)/main/tokenizer.json: 100%"}},"e9f83d9bcda54c628c02bf56168987f3":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f3aae7580f8a4675be201baa9050f94e":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ff2953953c3647cf83fa1b2241e557f3":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d02776a1c7c44df7a4a115fb60233b40","placeholder":"​","style":"IPY_MODEL_0ede27dffea9472eaa20c23ad15b30b9","value":" 228/228 [00:00&lt;00:00, 16.2kB/s]"}}},"version_major":2,"version_minor":0}}},"nbformat":4,"nbformat_minor":5}